{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the JuliaQuantum's [Base.jl](https://github.com/JuliaQuantum/QuBase.jl) and [QuDynamics.jl](https://github.com/JuliaQuantum/QuDynamics.jl) projects, intensive efforts have been focusing on the time evolution of quantum systems and the idea of propagator has been framed out. \n",
    "To reach out the regime of more complicated scenarios to simulate general quantum systems, however, it may be better to reframe things immediately on top of operators and superoperators language in my opinion. \n",
    "Operators may be familiar to most of the readers, and superoperators are just another layer of operations on operators. \n",
    "Superoperator notations have been widely used to describe the evolution of open quantum systems where the concept of propagator can be fully characterized.\n",
    "In the mean time, quantum measurement and control usually involve stochastic processes instead of differentiable deterministic time-evolution processes. \n",
    "There, propagators are not the minimal building blocks any more, but operator and superoperator language still valid to define the dynamics of the quantum system.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For a simple example, a quantum measurement on an atomic ensemble through photons may be described by the following differential map\n",
    "$$\\hat{\\rho}(t+dt) = \\hat{M}_0(dt)\\hat{\\rho}(t)\\hat{M}^\\dagger_0(dt) + \\sum_{\\mu>0} \\hat{M}_\\mu (dt)\\hat{\\rho}(t)\\hat{M}^\\dagger(dt) $$\n",
    "where the self-evolution operator in the time slot $dt$ is given by $\\hat{M}_0(dt)=\\hat{\\mathbb{1}}-\\frac{i}{\\hbar}\\hat{H}_{eff}dt$ with the effective Hamiltonian $\\hat{H}_{eff}=\\hat{H}-\\frac{i\\hbar}{2}\\sum_\\mu \\hat{L}_\\mu^\\dagger \\hat{L}_\\mu$.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2x2 Array{Float64,2}:\n",
       " 0.0  1.0\n",
       " 1.0  0.0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rho = [0. 1.; \n",
    "       1. 0.]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 0.4.5",
   "language": "julia",
   "name": "julia-0.4"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "0.4.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
